package com.cwrl.spider.protocol.base.inter;

import com.cwrl.spider.protocol.base.vo.IotDevice;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;
import java.util.function.Supplier;

public interface IProductModelListener {
    /**
     * 设备注册
     */
    default void register(Supplier<IotDevice> supplier) {

    }

    /**
     * 设备注销
     */
    default void unregister(Supplier<IotDevice> supplier) {

    }

    /**
     * 设备状态事件
     * @return
     */
    default void deviceStatusEvent(IotDevice iotDevice, String status) {

    }

    /**
     * 设备属性更新  name,value
     */
    default void devicePropertyEvent(IotDevice iotDevice, String name, String value) {

    }

    /**
     * 批量设备属性更新  name,value
     */
    default void devicePropertyEvent(IotDevice iotDevice, Map<String, String> properties) {
        for (Map.Entry<String, String> property : properties.entrySet()) {
            devicePropertyEvent(iotDevice, property.getKey(), property.getValue());
        }
    }

    /**
     * 告警事件 告警  level 为  1.一般 2.紧急 3.重要
     */
    default void deviceAlarmEvent(IotDevice iotDevice, String level, String alertType, String alarmInfo) {

    }
}
